package com.example.backend.entitly.mysql.user;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户认证方式表
 *
 * @TableName user_auth
 */
@TableName(value = "user_auth")
@Data
public class UserAuth implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 用户ID
     */
    private Long userId;
    /**
     * 认证方式ID
     */
    private Integer authMethodId;
    /**
     * 认证标识（如用户名、邮箱、手机号、OpenID等）
     */
    private String identifier;
    /**
     * 认证凭证（如加密后的密码、Token等）
     */
    private String credential;
    /**
     * 绑定时间
     */
    private Date bindTime;
    /**
     * 解绑时间
     */
    private Date unbindTime;
    /**
     * 最后登录时间
     */
    private Date lastLoginTime;
    /**
     * 最后登录IP
     */
    private String lastLoginIp;
    /**
     * 是否启用该认证方式（0=禁用，1=启用）
     */
    private Integer isActive;
    /**
     * 额外信息（如OAuth的refresh_token等）
     */
    private Object extraInfo;
    /**
     * 创建时间
     */
    private Date createdTime;
    /**
     *
     */
    private Date updatedTime;
    /**
     * 逻辑删除标记（0=未删除，1=已删除）
     */
    private Integer deleted;
    /**
     * 删除时间
     */
    private Date deletedTime;
}